﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using CRM.CapaDatos;
using CRM.Objetos;

namespace Canales_CRM
{
    public partial class CrearCanal : System.Web.UI.Page
    {
        string cadena = ConnectionStringManager.GetOnPremiseConnString();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CargarCanal();
            }
        }

        private void CargarTextos(TextBox txtNom, TextBox txtVal, Canal canales)
        {
            txtNom.Text = canales.Nombre.ToString();
        }

        protected void Cancel_btn_Click(object sender, EventArgs e)
        {
            RedirectToList();
        }

        protected void OK_btn_Click(object sender, EventArgs e)
        {
            GuardarCanal(txtNombre.Text, ddlResponsable.SelectedValue, ddlBackupResponsable.SelectedValue, ddlMedio.SelectedValue);
            RedirectToList();
        }

        #region Metodos de Aplicacion

        private void RedirectToList()
        {
            Response.Redirect("Canales.aspx");
        }

        private void GuardarCanal(string nombre, string idUsuarioResponsable, string idUsuarioBackup, string idMedio)
        {
            Canal newCanal = new Canal();
            newCanal.Nombre = txtNombre.Text;
            newCanal.Usu = Convert.ToInt32(idUsuarioResponsable);
            newCanal.Bkp = Convert.ToInt32(idUsuarioBackup);
            newCanal.Medio = Convert.ToInt32(idMedio);
            DAOCanal can = new DAOCanal(cadena);

            if (Request["var"] == null)
            {
                can.Crear(newCanal);
            }
            else 
            {
                newCanal.Id = Convert.ToInt32(Request["var"]);
                can.Editar(newCanal);
            }
        }

        private void CargarCanal()
        {
            DAOCanal can = new DAOCanal(cadena);
            DAOUsuario usuario = new DAOUsuario(cadena);
            List<Usuario> listaUsuarios = new List<Usuario>();

            listaUsuarios = usuario.ListarUsuarios();
            ddlResponsable.DataSource = listaUsuarios;
            ddlResponsable.DataTextField = "Nombre";
            ddlResponsable.DataValueField = "Id";
            ddlResponsable.DataBind();

            ddlBackupResponsable.DataSource = listaUsuarios;
            ddlBackupResponsable.DataTextField = "Nombre";
            ddlBackupResponsable.DataValueField = "Id";
            ddlBackupResponsable.DataBind();

            if (Request["var"] != null)
            {
                Canal canal = can.Consultar(Request["var"]);
                if (canal != null)
                {
                    txtNombre.Text = canal.Nombre;
                    ddlResponsable.SelectedValue = Convert.ToString(canal.Usu);
                    ddlBackupResponsable.SelectedValue=Convert.ToString(canal.Bkp);
                    ddlMedio.SelectedValue = Convert.ToString(canal.Medio);
                }
            }
        }

        #endregion

    }
}